﻿#ifndef WORDENGINE_H
#define WORDENGINE_H

#include <QObject>
#include <ActiveQt/QAxObject>
#include <ActiveQt/QAxWidget>
#include <QFile>

class WordEngine : public QObject
{
	Q_OBJECT
public:
	explicit WordEngine(QObject *parent = 0);
	WordEngine(const QString& strFile, QObject *parent = 0);
	~WordEngine();

	//打开
	bool open(bool bVisable = false);
	bool open(const QString& strFile, bool bVisable = false, bool onlyRead=false);
	bool open(bool bVisable, bool onlyRead);
	// 关闭
	bool close();
	// 判断是否打开
	bool isOpen();
	// 保存
	void save();
	// 另存为
	bool saveAs(const QString& strSaveFile);
    //另存为pdf
    bool savePdf(const QString& strSaveFile);
	// 更新目录
	void updateTableOfContent();
	// 设置标签内容
	bool setMarks(const QString& strMark, const QString& strContent);
	// 插入标题 3
	bool setTitle(const QString& strMark, const QString& strContent);
	// 批量设置标签
	//bool setBatchMarks(QStringList &itemList, QStringList sometexts);
	// 创建表格
	void insertTable(int nStart, int nEnd, int row, int column);
	QAxObject *insertTable(QString sLabel, int row, int column);
	// 合并单元格
	void MergeCells(QAxObject *table, int nStartRow, int nStartCol, int nEndRow, int nEndCol);
	// 插入图片
	void insertPic(QString sLabel, const QString& picPath);
	// 设置列宽
	void setColumnWidth(QAxObject *table, int column, int width);
	// 设置表格内容
	void setCellString(QAxObject *table, int row, int column, const QString& text);
	// 为表格添加行
	void addTableRow(QAxObject *table, int nRow, int rowCount);
	// 设置内容粗体  isBold控制是否粗体
	void setCellFontBold(QAxObject *table, int row, int column, bool isBold);
	// 设置文字大小
	void setCellFontSize(QAxObject *table, int row, int column, int size);
	// 在表格中插入图片
	void insertCellPic(QAxObject *table, int row, int column, const QString& picPath);
	// 获取文档中的表格
	QString getTable( int j, int z, bool getRight=true);
	QString getRightStr(QString str);
	QStringList getTable(QList<int> jList, QList<int> zList);
	QString getItem(QAxObject * table, int j, int z);
	void getTableRCCount(int &row, int &col);
private:
	bool m_bOpened;
	QString m_strFilePath;
	QAxObject *m_wordDocuments;
	QAxObject *m_wordWidget;

};
#endif // WORDENGINE_H
